package com.bonshotels.DomainLayer.CtrlDades;


/**
 * Interficie de la factoria de control de dades. Aquesta es la interficie que han d'implementar totes
 * les implementacions de factories de control de dades. D'aquesta manera domini depen d'aquesta
 * interficie per obtenir els controladors de dades enlloc de dependre d'una implementacio concreta.
 * Aquesta classe te el rol de Factoria Abstracta dins del patro Factoria Abstracta. Aquesta
 * implementacio del patro factoria abstracta es imitada de la p.608 de la tercera edicio de
 * "Applying UML and Patterns" d'en Craig Larman.
 * @author Marc Mauri Alloza
 */
public interface IFactoriaCtrlDades {
	    
    /**
     * Ens retorna una interficie que ens permet obtenir de la base d'informacio les instancies
     * de la classe Poblacio.
     *
     * @return Interficie CtrlPoblacio
     */
    ICtrlPoblacio obteCtrlPoblacio();
    
    /**
     * Ens retorna una interficie que ens permet obtenir de la base d'informacio les instancies
     * de la classe Hotel.
     * 
     * @return Interficie CtrlHotel
     */
    ICtrlHotel obteCtrlHotel();
    
    /**
     * Ens retorna una interficie que ens permet obtenir de la base d'informacio les instancies
     * de la classe Client.
     *
     * @return Interficie CtrlClient
     */
    ICtrlClient obteCtrlClient();
    
    /**
     Ens retorna una interficie que ens permet obtenir de la base d'informacio les instancies
     * de la classe Habitacio.
     * 
     * @return Interficie CtrlHabitacio
     */
    ICtrlHabitacio obteCtrlHabitacio();
    
    /**
     Ens retorna una interficie que ens permet obtenir de la base d'informacio les instancies
     * de la classe BonsHotels.
     * 
     * @return Interficie CtrlBonsHotels
     */
    ICtrlBonsHotels obteCtrlBonsHotels();

}
